package pe.com.cotelasa.scp.controlador.backingBean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.faces.model.SelectItem;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import pe.com.cotelasa.scp.common.IObserver;
import pe.com.cotelasa.scp.controlador.comando.IComando;
import pe.com.cotelasa.scp.entidad.Contacto;
import pe.com.cotelasa.scp.entidad.Empresa;
import pe.com.cotelasa.scp.entidad.Sede;
import pe.com.cotelasa.scp.entidad.TipoContacto;

@Named(value = "BKSede")
@Scope("session")
public class BKSede implements Serializable {

    private static final long serialVersionUID = 7551290889371980514L;
    private Sede sedeBusqueda;
    private Sede sedeFormulario;
    private Sede sedeSeleccionado;
    private SelectItem[] listaEmpresas;
    private Integer idOrganizacionBusqueda;
    private Integer idDireccionBusqueda;
    private SelectItem[] listaOrganizacionBusqueda;
    private Character tipoOrganizacion;
    private Collection<Sede> listaDireccionBusqueda;
    private Collection<Sede> listaTodasLasSedes;
    private Collection<Sede> listaSedesActivas;
    private Collection<Contacto> listaContactosFormulario;
    private SelectItem[] listaSedes;
    private boolean tiendaBusqueda = false;
    private boolean almacenBusqueda = false;
    private boolean tiendaFormulario = false;
    private boolean almacenFormulario = false;
    private Empresa empresaForumlario;
    private TipoContacto tipoContactoForumlario;
    private boolean verFormulario;
    private IComando comando;
    private boolean conRazonSocial = false;
    private List<IObserver> observers;
    public BKSede() {
        this.sedeBusqueda = new Sede();
        this.observers = new ArrayList<IObserver>();
    }

    public Sede getSedeBusqueda() {
        return sedeBusqueda;
    }

    public void setSedeBusqueda(Sede sedeBusqueda) {
        this.sedeBusqueda = sedeBusqueda;
    }

    public Sede getSedeFormulario() {
        return sedeFormulario;
    }

    public void setSedeFormulario(Sede sedeFormulario) {
        this.sedeFormulario = sedeFormulario;
    }

    public Sede getSedeSeleccionado() {
        return sedeSeleccionado;
    }

    public void setSedeSeleccionado(Sede sedeSeleccionado) {
        this.sedeSeleccionado = sedeSeleccionado;
    }

    public Collection<Sede> getListaTodasLasSedes() {
        return listaTodasLasSedes;
    }

    public void setListaTodasLasSedes(Collection<Sede> listaTodasLasSedes) {
        this.listaTodasLasSedes = listaTodasLasSedes;
    }

    public Collection<Sede> getListaSedesActivas() {
        return listaSedesActivas;
    }

    public void setListaSedesActivas(Collection<Sede> listaSedesActivas) {
        this.listaSedesActivas = listaSedesActivas;
    }

    public SelectItem[] getListaSedes() {
        return listaSedes;
    }

    public void setListaSedes(SelectItem[] listaSedes) {
        this.listaSedes = listaSedes;
    }

    public Integer getIdOrganizacionBusqueda() {
        return idOrganizacionBusqueda;
    }

    public void setIdOrganizacionBusqueda(Integer idOrganizacionBusqueda) {
        this.idOrganizacionBusqueda = idOrganizacionBusqueda;
    }

    public Integer getIdDireccionBusqueda() {
        return idDireccionBusqueda;
    }

    public void setIdDireccionBusqueda(Integer idDireccionBusqueda) {
        this.idDireccionBusqueda = idDireccionBusqueda;
    }

    public SelectItem[] getListaOrganizacionBusqueda() {
        return listaOrganizacionBusqueda;
    }

    public void setListaOrganizacionBusqueda(SelectItem[] listaOrganizacionBusqueda) {
        this.listaOrganizacionBusqueda = listaOrganizacionBusqueda;
    }

    public Collection<Sede> getListaDireccionBusqueda() {
        return listaDireccionBusqueda;
    }

    public void setListaDireccionBusqueda(Collection<Sede> listaDireccionBusqueda) {
        this.listaDireccionBusqueda = listaDireccionBusqueda;
    }

    public Character getTipoOrganizacion() {
        return tipoOrganizacion;
    }

    public void setTipoOrganizacion(Character tipoOrganizacion) {
        this.tipoOrganizacion = tipoOrganizacion;
    }

    public boolean isTiendaBusqueda() {
        return tiendaBusqueda;
    }

    public void setTiendaBusqueda(boolean tiendaBusqueda) {
        this.tiendaBusqueda = tiendaBusqueda;
    }

    public boolean isAlmacenBusqueda() {
        return almacenBusqueda;
    }

    public void setAlmacenBusqueda(boolean almacenBusqueda) {
        this.almacenBusqueda = almacenBusqueda;
    }

    public boolean isTiendaFormulario() {
        return tiendaFormulario;
    }

    public void setTiendaFormulario(boolean tiendaFormulario) {
        this.tiendaFormulario = tiendaFormulario;
    }

    public boolean isAlmacenFormulario() {
        return almacenFormulario;
    }

    public void setAlmacenFormulario(boolean almacenFormulario) {
        this.almacenFormulario = almacenFormulario;
    }

    public Empresa getEmpresaForumlario() {
        return empresaForumlario;
    }

    public void setEmpresaForumlario(Empresa empresaForumlario) {
        this.empresaForumlario = empresaForumlario;
    }

    public Collection<Contacto> getListaContactosFormulario() {
        return listaContactosFormulario;
    }

    public void setListaContactosFormulario(Collection<Contacto> listaContactosFormulario) {
        this.listaContactosFormulario = listaContactosFormulario;
    }

    public TipoContacto getTipoContactoForumlario() {
        return tipoContactoForumlario;
    }

    public void setTipoContactoForumlario(TipoContacto tipoContactoForumlario) {
        this.tipoContactoForumlario = tipoContactoForumlario;
    }

    public boolean isVerFormulario() {
        return verFormulario;
    }

    public void setVerFormulario(boolean verFormulario) {
        this.verFormulario = verFormulario;
    }

    public IComando getComando() {
        return comando;
    }

    public void setComando(IComando comando) {
        this.comando = comando;
    }
    
    public void addObservers(IObserver observador) {
        observers.add(observador);
    }

    public List<IObserver> getObservers() {
        return observers;
    }
    
    public SelectItem[] getListaEmpresas() {
        return listaEmpresas;
    }

    public void setListaEmpresas(SelectItem[] listaEmpresas) {
        this.listaEmpresas = listaEmpresas;
    }

    public boolean isConRazonSocial() {
        return conRazonSocial;
    }

    public void setConRazonSocial(boolean conRazonSocial) {
        this.conRazonSocial = conRazonSocial;
    }
}
